package com.waterworld.watch.home.interfaces;

import com.waterworld.watch.common.net.BaseObserverListener;

/**
 * Created by nhuan
 * Time:2019/1/17.
 */

public interface IHomeManager {

    /**
     * 检查imei
     * @param imei
     * @param baseObserverListener
     */
    void checkImei(String imei,BaseObserverListener baseObserverListener);

    /**
     * 绑定
     * @param imei 设备IMEI号
     * @param baseObserverListener
     */
    void bindWatch(String imei, String relationWithBaby,String head,String name,Integer sex,String birthday,String grade,String classes,String height,String weight, String phone, BaseObserverListener baseObserverListener);

    /**
     * 切换手表
     */
    void switchWatch(Integer watchId,BaseObserverListener baseObserverListener);

    /**
     * 解绑手表
     * @param unbundlingUserId
     * @param baseObserverListener
     */
    void unbindWatch(Integer unbundlingUserId, BaseObserverListener baseObserverListener);

    /**
     * 恢复出厂设置
     * @param baseObserverListener
     */
    void resumeFactory(BaseObserverListener baseObserverListener);

    /**
     * 编辑主页功能区
     * @param functionSigns 功能标识集。
     * @param baseObserverListener
     */
    void editHomePageFunction(String functionSigns,BaseObserverListener baseObserverListener);

    /**
     * 获取所有功能
     * @param baseObserverListener
     */
    void getAllFunction(BaseObserverListener baseObserverListener);

    /**
     * 获取未启用的功能
     * @param baseObserverListener
     */
    void getNotUseFunction(BaseObserverListener baseObserverListener);

    /**
     * 获取用户绑定手表列表
     */
    void listBindWatch(BaseObserverListener baseObserverListener);

    /**
     * 获取当前手表用户信息
     */
    void getCurrentWatchUserInfo(BaseObserverListener baseObserverListener);

    /**
     * 获取绑定该手表的用户列表
     */
    void listBindWatchUser(BaseObserverListener baseObserverListener);

    /**
     * 移交管理权限
     */
    void transferAuthority(Integer authorizeeUserId,BaseObserverListener baseObserverListener);

    /**
     * 获取当前用户信息
     */
    void getCurrentUser(BaseObserverListener baseObserverListener);

    /**
     * 保存或更新手表用户
     */
    void saveWatchUserInfo(String head,String name,Integer sex,String birthday,String grade,String classes,String height,String weight, String phone,BaseObserverListener baseObserverListener);

    /**
     * 获取手表通讯录
     */
    void listAddressBook(BaseObserverListener baseObserverListener);

    /**
     * 上传手表通讯录
     */
    void uploadAddressBook(String addressBook,BaseObserverListener baseObserverListener);

    /**
     * 获取课程表
     */
    void getCourse(BaseObserverListener baseObserverListener);

    /**
     * 上传课程表
     */
    void uploadCourse(String course,BaseObserverListener baseObserverListener);

    /**
     * 运动统计
     */
    void getSportsCount(BaseObserverListener baseObserverListener);

    /**
     * 运动统计
     */
    void getLastSportsCount(BaseObserverListener baseObserverListener);

    /**
     * 远程拍摄
     */
    void remotePhoto(BaseObserverListener baseObserverListener);

    /**
     * 获取照片
     */
    void listPhoto(Integer pageNum,Integer pageSize,BaseObserverListener baseObserverListener);

    /**
     * 删除照片
     */
    void deletePhoto(String ids,BaseObserverListener baseObserverListener);

    /**
     * 单向聆听
     */
    void oneWayListening(BaseObserverListener baseObserverListener);

    /**
     * 获取日程列表
     */
    void listSchedule(Integer pageNum,Integer pageSize,BaseObserverListener baseObserverListener);

    /**
     * 添加日程
     */
    void addSchedule(String remindTime,Integer remindType ,String remindDays,String remindContent,BaseObserverListener baseObserverListener);

    /**
     * 更新日程
     */
    void updateSchedule(Integer id,String remindTime,Integer remindType,String remindDays,String remindContent,BaseObserverListener baseObserverListener);

    /**
     * 是否启用日程
     */
    void isEnableSchedule(Integer id,Boolean isEnable,BaseObserverListener baseObserverListener);

    /**
     * 删除日程
     */
    void deleteSchedule(Integer id,BaseObserverListener baseObserverListener);

    /**
     * 单向聆听用户
     */
    void listOneWayListeningUser(BaseObserverListener baseObserverListener);
}
